var entidad_id;
var entidad_tipo;
var estado = true;
var guardado = false;
var form_id;
$(function () {
    form_id = "#" + $('.form-horizontal').attr('id');
    //update
    if ($("#Cuenta_id").val()) {
        entidad_id = $("#Cuenta_id").val();
        entidad_tipo = "CUENTA";
        estado = false;
        guardado = true;
        changeButtonSubmit('btn_crearCuenta');
//        $("#btn_finalizar").attr('href', baseUrl + 'crm/cuenta/view/id/' + entidad_id);
    }

//    btnStatus('#add-direccion', false);
//    btnStatus('#add-email', false);
//    btnStatus('#add-telefono', false);
//    btnStatus('#add-redsocial', false);
});

/**
 * Controla el estado de los botones
 * @autor Alexis Hidalgo <ahidalgo@tradesystem.com.ec>
 * @param {type} btn_id
 * @param {type} active
 * @param {type} accion
 * @returns {undefined}
 */
function btnStatus(btn_id, active, accion) {
    var botonSubmit = $(btn_id);
    if (active == false) {
        $(botonSubmit).attr("disabled", true);
//        $(botonSubmit).html('<i class="icon-loading"></i> Espere...');
        $(botonSubmit).attr("onclick", false);
    } else {
        $(botonSubmit).attr("disabled", false);
//        $(botonSubmit).html('<i class="icon-refresh"></i> Reset');
        $(botonSubmit).attr("onclick", accion);
    }
}

function changeButtonSubmit(btn_crear_id) {
    $('#' + btn_crear_id).css('display', 'none');
    $('#btn_finalizar').css('display', 'inline-block');
    $('#btn_finalizar').attr({
        'onclick': 'js:save("#cuenta-form")',
        'href': baseUrl + 'crm/cuenta/view/id/' + entidad_id,
    });
    $('#cuenta-form').attr({
        'action': baseUrl + '/crm/cuenta/update?id=' + entidad_id,
    });
}

function save(form_id) {
    $.ajax({
        async: false,
        type: 'POST',
        url: $(form_id).attr('action'),
        data: $(form_id).serialize() + '&' + 'ajax=' + form_id,
        dataType: 'json',
        beforeSend: function (xhr) {
//            console.log($(form_id).serialize());
            //Acciones a reaqlizar antes del envio
            BloquearBotonesModal(form_id);
        },
        success: function (data) {
//            console.log(data.data);
            //acciones a realizar cuando la respuesta es positiva 
            if (data.success) {
                //reiniciar elementos
                reloadControlGroup(form_id);
                //agragar clase success a los elemento si error
                addClassSuccess(form_id);
                if (!$("#Cuenta_id").val()) {
                    console.log('entro');
                    entidad_id = data.data.entidad_id;
                    entidad_tipo = data.data.entidad_tipo;
                    changeButtonSubmit('btn_crearCuenta');
                    $("#Cuenta_id").val(entidad_id);
                    guardado = true;
                    estado = false;
//                    $("#btn_finalizar").attr('href', baseUrl + 'crm/cuenta/view/id/' + entidad_id);
                }
                else {
                    changeButtonSubmit('btn_crearCuenta');
//                    DesBloquearBotonesModal(form_id, ' Guardar', 'save');
//                    bootbox.alert('Se actualizó correctamente la información');
                }

            } else {
                //acciones a realizar cuando existen errores
                DesBloquearBotonesModal(form_id, ' Crear', 'save');
                guardado = false;
                estado = true;
                //reiniciar elementos
                reloadControlGroup(form_id);
                //inicielaizar span help-inline
                formIdpar = form_id.split('-');
                //capturar el identificador
//                console.log(formIdpar.lenght);
                $count = 0;
                $.each(formIdpar, function (index, element) {
                    ++$count;
                });
                formIdpar[$count - 1] = '';
                formIdent = getLomoCamello(formIdpar);
//                console.log(formIdent);
                //mostrar errores
                $.each(data.errors, function (parametro, mensaje) {
                    //elemento con error
                    selectElementoFormError = "form" + form_id + ' [name="' + formIdent.replace('#', '') + "[" + parametro + ']"';
                    //agregar la clase error
                    $(selectElementoFormError).parent().parent('div.control-group').addClass('error');
                    //mostrar mensaje de error
                    $("form" + form_id + ' ' + formIdent + '_' + parametro + '_em_').html(mensaje[0]);
                    $("form" + form_id + ' ' + formIdent + '_' + parametro + '_em_').attr('style', '');
                });
                //agragar clase success a los elemento si error
                addClassSuccess(form_id);
                $('#btn_finalizar').attr({
                    'href': '#',
                });
            }
        }
    });
}

/**
 * Controla si se muestra o no los modals de contacto de Cuenta
 * @autor Alexis Hidalgo <ahidalgo@tradesystem.com.ec>
 * @param {type} isUpdate
 * @param {type} id
 * @param {type} type
 * @returns {undefined}
 */
function controlModal(isUpdate, id, type) {
    var url;
    if (estado) {
        save(form_id);
        if (guardado == true) {
//            changeButtonSubmit('btn_crearCuenta');
            url = generateUrl(null, null, type);
            viewModal(url, function () {
            });
        } else {
            bootbox.alert('Existe un error en el formulario de creación de cuenta!');
        }
//        console.log(estado);
//        console.log(guardado);
    } else {
        url = generateUrl(isUpdate, id, type);
        viewModal(url, function () {
        });
    }
}

/**
 * Genera la url para los diferentes botones de contacto
 * @autor Alexis Hidalgo <ahidalgo@tradesystem.com.ec>
 * @param {type} isUpdate
 * @param {type} id
 * @param {type} button_type
 * @returns {string} url
 */
function generateUrl(isUpdate, id, button_type) {
    return isUpdate ? 'crm/' + button_type + '/quickUpdate?id=' + id : 'crm/' + button_type + '/quickCreate?entidad_tipo=' + entidad_tipo + '&entidad_id=' + entidad_id;
}

function formModalDireccion(isUpdate, id) {
//    url = isUpdate ? 'crm/direccion/quickUpdate?id=' + id : 'crm/direccion/quickCreate?entidad_tipo=' + entidad_tipo + '&entidad_id=' + entidad_id;
    if (isUpdate) {
        controlModal(isUpdate, id, 'direccion');
    } else {
        controlModal(null, null, 'direccion');
    }
}
function formModalEmail(isUpdate, id) {
//    url = isUpdate ? 'crm/email/quickUpdate?id=' + id : 'crm/email/quickCreate?entidad_tipo=' + entidad_tipo + '&entidad_id=' + entidad_id;
    if (isUpdate) {
        controlModal(isUpdate, id, 'email');
    } else {
        controlModal(null, null, 'email');
    }
}
function formModalTelefono(isUpdate, id) {
//    url = isUpdate ? 'crm/telefono/quickUpdate?id=' + id : 'crm/telefono/quickCreate?entidad_tipo=' + entidad_tipo + '&entidad_id=' + entidad_id;
    if (isUpdate) {
        controlModal(isUpdate, id, 'telefono');
    } else {
        controlModal(null, null, 'telefono');
    }
}
function formModalRedSocial(isUpdate, id) {
//    url = isUpdate ? 'crm/redSocial/quickUpdate?id=' + id : 'crm/redSocial/quickCreate?entidad_tipo=' + entidad_tipo + '&entidad_id=' + entidad_id;
    if (isUpdate) {
        controlModal(isUpdate, id, 'redSocial');
    } else {
        controlModal(null, null, 'redSocial');
    }
}
function updateGrid(id_grid, data, url) {
    $.fn.yiiGridView.update(id_grid, {
        data: {data: data},
        url: baseUrl + url
    });
    $nameGrid = id_grid.split('-');
    if ($("#add-" + $nameGrid[0]).hasClass('empty-portlet')) {
        $("#container_" + $nameGrid[0]).append('<br>');
        $("#container_" + $nameGrid[0]).removeClass('hidden');
        $("#add-" + $nameGrid[0]).removeClass('empty-portlet');
        $("#add-" + $nameGrid[0] + ' br').remove();
    }

}
//function habilitarPaneles() {
//    $('#dv_cuenta').animate({
//        'height': 'toggle'
//    }, 200, function () {
//        $('div.panel').animate({
//            'height': 'toggle'
//        }, 200, function () {
//        });
//    });
//}